package model.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import model.bean.Ambiente;
import model.bean.Dispositivo;
import model.interfaces.IDispositivo;

public class DispositivoDAO implements IDispositivo {

	public EntityManager getEntitymanager(){
		EntityManagerFactory factory = null;
		EntityManager manager = null;
		
		try{
			factory = Persistence.createEntityManagerFactory("SmartClassroomPUnit");
			manager = factory.createEntityManager();
		}catch(Exception e){
			System.out.println("Erro : " + e);
		}finally{
			factory.close();
		}
		
		return manager;
	}
	
	@Override
	public void cadastraDispositivo(Dispositivo dispositivo) {
		EntityManager manager = getEntitymanager();
		try{
			manager.getTransaction().begin();
			System.out.println("Cadastrando Dispositivo " + dispositivo.getNome());
			manager.persist(dispositivo);
			manager.getTransaction().commit();
		}catch(Exception e){
			System.out.println("Erro : " + e);
		}finally{
			manager.close();
		}
	}

	@Override
	public void vinculaAmbienteDispositivo(Ambiente ambiente, Dispositivo dispositivo) {
		EntityManager manager = getEntitymanager();
		try{
			manager.getTransaction().begin();
			System.out.println("Vinculando Ambiente ao Dispositivo " + dispositivo.getNome());
			dispositivo.getAmbientes().add(ambiente);
			manager.persist(dispositivo);
			manager.getTransaction().commit();
		}catch(Exception e){
			System.out.println("Erro : " + e);
		}finally{
			manager.close();
		}
	}

}
